/* ----------------------------------------------------
   Guestbook Layout — Left Column + Taped Entries
   Leaves on left • Tape on right
   Please do not copy or create a design similar to this one without my
   permission.
---------------------------------------------------- */

@import url('https://fonts.googleapis.com/css?family=Zilla+Slab|Montserrat|Amiri|Libre+Baskerville|Roboto|Allura|Cormorant+Garamond');

html {
    font-size: 62.5%;
}

body {
    margin: 0;
    background: #F4F5F5;
    font: 12px 'Zilla Slab', serif;
    color: #303030;
}

*, *::before, *::after {
    box-sizing: border-box;
}

a { color: #000000; text-decoration: none; }
a:hover { color: #AAAAAA; text-decoration: none; border-bottom: 1px solid #000; }

/* ----------------------------------------------------
   GRID STRUCTURE — LEFT STACK + RIGHT ENTRIES
---------------------------------------------------- */

main {
    display: grid;
    max-width: 1100px;
    margin: 0 auto;
    padding: 25px;

    grid-template-columns: 40% 1fr;
    grid-template-rows: auto auto auto 1fr auto;

    grid-template-areas:
        "header  book"
        "about     book"
        "nav   book"
        ".       book"
        "footer  book";

    column-gap: 30px;
    row-gap: 20px;
}

main {
    position: relative;
}

main::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 43%;         
    height: 100%;
    background: url('geometric-leaves.png');
    z-index: -1;        
    opacity: 1;        
}

/* Grid Areas */

.left-header { grid-area: header; }
.left-nav    { grid-area: nav; }
.about       { grid-area: about; }
.book        { grid-area: book; }
.left-footer { grid-area: footer; }

/* ----------------------------------------------------
   HEADER + LEAF ACCENTS
---------------------------------------------------- */

.left-header {
    text-align: center;
    padding: 10px 5px;
    position: relative;
}

.left-header h1 {
    margin: 0;
    font: 3rem 'Amiri', serif;
    letter-spacing: 3px;
    text-transform: uppercase;
    color: #242424;
}

.left-header h2 {
    margin: 4px 0 10px;
    font: 1.7rem 'Cormorant Garamond', serif;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: #414141;
}

/* ----------------------------------------------------
   NAV + tiny leaf
---------------------------------------------------- */

.left-nav {
    text-align: center;
    padding: 8px 0;
    position: relative;
}

.left-nav a {
    font: normal 1.5rem 'Montserrat', sans-serif;
    text-transform: uppercase;
    letter-spacing: 2px;
    padding: 0 6px;
}

/* ----------------------------------------------------
   ABOUT — small + clean
---------------------------------------------------- */

.about {
    background: #ffffff;
    border: 1px solid #999999;
    border-radius: 4px;
    padding: 12px 15px;
    font-size: 1.4rem;
    line-height: 1.5;
}

.about p {
    margin: 0;
    color: #666666;
}

/* ----------------------------------------------------
   RIGHT COLUMN — Taped Entries
---------------------------------------------------- */

.book {
    padding: 10px;
}

.entry {
    position: relative;
    background: #ffffff;
    border: 1px solid ##919191;
    border-radius: 4px;
    padding: 20px;
    margin-bottom: 45px;
    box-shadow: 0 3px 10px rgba(0,0,0,0.04);
}

/* centered tape */
.entry .tape {
    position: absolute;
    top: -14px;
    left: 50%;
    transform: translateX(-50%) rotate(-2deg);
    width: 90px;
    height: 30px;
    background: rgba(145,145,145,0.55);
    border-radius: 3px;
    box-shadow: 0 2px 5px rgba(0,0,0,0.15);
}

.entry h3 {
    margin: 0 0 10px;
    font: 1.2rem 'Montserrat', sans-serif;
    text-transform: uppercase;
    letter-spacing: 2px;
    color: #757575;
}

.entry p {
    margin: 0;
    font-size: 1.4rem;
    line-height: 1.6;
}

/* -----------------------------
   PAGE NAVIGATION UNDER ENTRIES
----------------------------- */

.page-nav {
    margin-top: 10px;
    text-align: center;
    padding: 15px 0;
    font-family: 'Montserrat', sans-serif;
    text-transform: uppercase;
    letter-spacing: 2px;
    font-size: 1.1rem;
    color: #ecefee;
}

.page-nav a {
    display: inline-block;
    padding: 6px 12px;
    margin: 0 5px;
    border: 1px solid #dddddd;
    border-radius: 3px;
    background: #ffffff;
    color: #414141;
    text-decoration: none;
    transition: 0.2s ease;
}

.page-nav a:hover {
    background: #ecefee;
    color: #666666;
}

.page-nav .dots {
    color: #000000;
    padding: 0 8px;
}

/* ----------------------------------------------------
   FORM SECTION 
---------------------------------------------------- */

.form-section {
    background: #ffffff;
    border-radius: 4px;
    padding: 20px 25px;
    margin: 10px 0;
    box-shadow: 0 3px 10px rgba(0,0,0,0.04);
}

.form-section h2 {
    margin: 0 0 20px;
    font: 2rem 'Cormorant Garamond', serif;
    text-transform: uppercase;
    letter-spacing: 2px;
    color: #303030;
    text-align: center;
}

/* Messages (error/success) */
.form-section .error,
.form-section .success {
    padding: 12px;
    margin-bottom: 15px;
    border-radius: 3px;
    font-size: 1.4rem;
    font-family: 'Zilla Slab', serif;
}

.form-section .error {
    background: #2c0000;
    color: #ffb8b8;
    border: 1px solid #660000;
}

.form-section .success {
    background: #e7ffe7;
    color: #0a400a;
    border: 1px solid #74a874;
}

/* Hide honeypot */
.hp-wrap {
    position: absolute;
    left: -9999px;
    visibility: hidden;
}

/* Labels */
.form-section label {
    display: block;
    margin: 15px 0 5px;
    font: 1.3rem 'Montserrat', sans-serif;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    color: #4a4a4a;
}

/* Inputs */
.form-section input[type="text"],
.form-section input[type="email"],
.form-section input[type="number"],
.form-section textarea,
.form-section select {
    width: 100%;
    padding: 12px;
    margin-top: 5px;
    font-size: 1.4rem;
    font-family: 'Zilla Slab', serif;

    background: #f4f4f4;
    color: #1a1a1a;
    border: 1px solid #b0b0b0;
    border-radius: 3px;

    transition: 0.2s ease;
}

/* Focus effect matches your theme */
.form-section input:focus,
.form-section textarea:focus,
.form-section select:focus {
    background: #ffffff;
    border-color: #414141;
    outline: none;
}

/* Dropdown */
.form-section select {
    cursor: pointer;
}

/* Textarea resize */
.form-section textarea {
    resize: vertical;
    min-height: 100px;
}

/* Submit button */
.form-section button {
    display: inline-block;
    margin-top: 20px;
    padding: 12px 25px;

    background: #303030;
    color: #ffffff;

    font: 1.2rem 'Montserrat', sans-serif;
    text-transform: uppercase;
    letter-spacing: 2px;

    border: none;
    border-radius: 3px;
    cursor: pointer;

    transition: background 0.2s ease;
}

.form-section button:hover {
    background: #555555;
}

/* ----------------------------------------------------
   Entry bottom-right tools (www + ...)
---------------------------------------------------- */
.entry-tools {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    margin-top: 10px;
    font-size: 1.2rem;
    opacity: 0.7;
}

.entry-tools .tool-item a {
    color: #414141;
    text-decoration: none;
}

.entry-tools .tool-item a:hover {
    color: #000;
    text-decoration: underline;
}

.reply-toggle {
    cursor: pointer;
}

.reply-toggle:hover {
    opacity: 1;
}

/* Public reply box */
.public-reply {
    display: none;
    margin-top: 12px;
    padding: 12px;
    background: #efefef;
    border-left: 3px solid #777;
    border-radius: 4px;
}

.public-reply.open {
    display: block;
}

/* ----------------------------------------------------
   FOOTER (left column bottom)
---------------------------------------------------- */

.left-footer {
    padding: 10px;
    background: #ecefee;
    border-radius: 3px;
    font: lighter 0.8rem 'Montserrat', sans-serif;
    letter-spacing: 1.5px;
    color: #343e40;
}

.left-footer a:hover {
    color: #6f959e;
}